home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / C / Libraries / MacWT 0.04 / wt / view.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-10-31  |  1.3 KB  |  47 lines  |  [TEXT/MMCC]

  1. /*
  2. **  wt -- a 3d game engine
  3. **
  4. **  Copyright (C) 1994 by Chris Laurel
  5. **  email:  claurel@mr.net
  6. **  snail mail:  Chris Laurel, 5700 W Lake St #208,  St. Louis Park, MN  55416
  7. **
  8. **  This program is free software; you can redistribute it and/or modify
  9. **  it under the terms of the GNU General Public License as published by
  10. **  the Free Software Foundation; either version 2 of the License, or
  11. **  (at your option) any later version.
  12. **
  13. **  This program is distributed in the hope that it will be useful,
  14. **  but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16. **  GNU General Public License for more details.
  17. **
  18. **  You should have received a copy of the GNU General Public License
  19. **  along with this program; if not, write to the Free Software
  20. **  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  21. */
  22.  
  23. #include <stdlib.h>
  24. #include <math.h>
  25. #include "wt.h"
  26. #include "error.h"
  27. #include "fixed.h"
  28. #include "wtmem.h"
  29. #include "view.h"
  30.  
  31.  
  32. View *new_view(fixed arc)
  33. {
  34.      View *v;
  35.  
  36.      if (arc >= FIXED_PI)
  37.       return NULL;
  38.      v = wtmalloc(sizeof(View));
  39.      v->arc = arc;
  40.      v->eye_distance = FLOAT_TO_FIXED(1.0);
  41.      v->view_plane_size =
  42.       fixmul(FLOAT_TO_FIXED(tan(FIXED_TO_FLOAT(arc) / 2.0)), 
  43.          v->eye_distance);
  44.  
  45.      return v;
  46. }
  47.